package com.ys.day31.p1扩展json应用场景;


import com.ys.day31.p3FastJson.Worker;
import org.json.JSONArray;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 描述:
 *
 * @author CodeYang
 * @version 2021/1/18 9:00
 */
public class P1扩展前后端分离JSON {

    /**
     * 回顾
     *
     * XML：消除Java的硬编码，将经常使用的数据放入到配置文件中。
     *
     * XML数据如何到Java程序，需要使用一种解析技术(Dom4J)
     *
     * JSON: 基于文本的数据交换语言，可以在任何平台，任何语言之间传输数据(跨语言、跨平台)
     *
     * 将Java对象转换为JSON对象，也可以将JSON对象转换为Java对象
     *
     * JSON支持：字符串、数字(整数、小数)、boolean、数组[]、对象{}
     *
     * JSON以键值对形式存储数据：键只能是字符串，值可以是上面的类型
     *
     * JSON的键和值之间使用半角冒号分隔，多个键值对之间使用半角逗号分隔
     *
     * JSON是前后端分离最佳的选中，前后端之间使用JSON作为数据传输的格式
     *
     *
     */

    public static void main(String[] args) {
        Worker[] workers ={
                new Worker(191,"Tom",3000,1.5),
                new Worker(197,"Jim",5000,1.6),
                new Worker(181,"Samm",2000,1.8),
        };
        // Arrays.asList(workers)方法返回值类型是：java.util.Arrays.ArrayList 是李鬼，不支持add(E)方法

        List<Worker> workerList = Arrays.asList(workers);
        // 下面代码会抛出：UnsupportedOperationException 不支持add方法  因为 Arrays.asList 返回的 ArrayList 是它内部的一个List 不支持add 方法
        // 根本就没有实现 add 方法
        //workerList.add(new Worker(191,"Tom",3000,1.5));

        List<Worker> list = new ArrayList<>(workerList);

        // 将json 对象数组 变为str

        JSONArray jsonArray = new JSONArray(workerList);

        String toString = jsonArray.toString();
        System.out.println(toString);


    }


}
